layui.config({
    base: '../../static/layuiadmin/' //静态资源所在路径
}).extend({
    index: 'lib/index' //主入口模块
}).use(['tree', 'util'], function() {
    var layer = layui.layer
        , util = layui.util
        , data;
    window.tree = layui.tree;
    var roleMenu;
    var id=urlQuery("id");
    $.ajax({
        url:"/admin/menu/listAll",
        type:"get",
        success:function (result) {
            if(result.code==0){
                var menus=result.data;
                loadRelMenu(menus);
                //获取第一级菜单
                var lastMenus=[];
                for (var i=0;i<menus.length;i++){
                    var menu=menus[i];
                    if(menu.parentId==null){
                        var menuTree={
                            title:menu.name,
                            id:menu.id,
                            spread:true
                        };
                        lastMenus.push(menuTree);
                        //查询角色菜单关联信息表中是否存在该菜单id，存在设置菜单树默认选中状态
                        for (var j=0;j<roleMenu.length;j++){
                            if(menuTree.id==roleMenu[j].menuId){
                                menuTree.checked=true;
                            }else {
                                menuTree.checked=false;
                            }
                        }
                    }
                }
                for (var i=0;i<lastMenus.length;i++){
                    getTree(menus,lastMenus[i],roleMenu);
                }
                data=lastMenus;
                /**
                 * 显示菜单树
                 */
                tree.render({
                    elem: '#test12'
                    ,data: data
                    ,showCheckbox: tree  //是否显示复选框
                    ,id: 'demoId1'
                    ,isJump: true //是否允许点击节点时弹出新窗口跳转
                    ,operate: function(obj){
                        var type = obj.type; //得到操作类型：add、edit、del
                        var data = obj.data; //得到当前节点的数据
                        var elem = obj.elem; //得到当前节点元素
                        var id = data.id; //得到节点索引

                    }
                });
            }else {
                layer.msg(result.message);
            }
        }
    });
    var loadRelMenu=function() {
        $.ajax({
            url:"/admin/role/relMenu",
            type:"get",
            async:false,
            data:{roleId:id},
            success:function (result) {
                if(result.code==0){
                     roleMenu=result.data;
                }

            }
        })
    }
});
function getTree(menus,obj,roleMenu) {
    var menus2=menus;
    var chlist=[];
    for (var i=0;i<menus2.length;i++){
        var menu=menus2[i];
        if(menu.parentId==obj.id){
            var menuTree={
                title:menu.name,
                id:menu.id,
                spread:true
            };
            //查询角色菜单关联信息表中是否存在该菜单id，存在设置菜单树默认选中状态
            for (var j=0;j<roleMenu.length;j++){
                if(menuTree.id==roleMenu[j].menuId){
                    menuTree.checked=true;
                }
            }
            getTree(menus,menuTree,roleMenu);
            chlist.push(menuTree);
        }
    }
    obj.children=chlist;
}
window.sub = [];
function getsub(obj,sub){
   for (var i=0;i<obj.length;i++){
       sub.push(obj[i].id);
       if( obj[i].children.length > 0 ){
           $.each( obj[i].children, function(k, v){
               sub.push( v.id );
               getsub( v,sub );
           });
       }
   }
    return sub;
}